package com.bfly.mall.system.dto;

import com.alibaba.fastjson.annotation.JSONField;
import com.bfly.core.config.ResourceConfigure;
import com.bfly.mall.system.enums.SysConfigType;
import org.apache.commons.lang3.StringUtils;

import java.io.Serializable;

/**
 * 微信支付配置
 *
 * @author 长沙商脉科技有限公司
 * @date 2020/9/18 11:12
 */
public class WXPayConfigDTO implements Serializable {

    private static final long serialVersionUID = -6924998076173568932L;
    private int type = SysConfigType.WX_PAY.getId();

    /**
     * 商户号
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/9/18 11:13
     */
    private String mchId;

    /**
     * API V3 KEY
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/9/18 11:14
     */
    private String apiKeyV3;

    /**
     * API V1 KEY
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/12/12 11:52
     */
    private String apiKeyV1;

    /**
     * 商户证书序列号
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/12/9 16:21
     */
    private String serialNo;

    /**
     * 支付回调URL
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/9/18 11:15
     */
    private String notifyUrl;

    /**
     * 证书密钥pem格式（apiclient_key.pem）
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/9/18 11:15
     */
    private String keyPem;

    /**
     * 证书pem格式（apiclient_cert.pem）
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/12/9 20:33
     */
    private String certPem;

    /**
     * 证书pkcs12格式（apiclient_cert.p12）
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/12/9 20:34
     */
    private String certP12;

    public int getType() {
        return type;
    }

    public String getMchId() {
        return mchId;
    }

    /**
     * certPem绝对路径
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/12/9 21:00
     */
    @JSONField(serialize = false)
    public String getCertPemPath() {
        return StringUtils.isEmpty(getCertPem()) ? "" : ResourceConfigure.getResourceAbsolutePath(getCertPem());
    }

    /**
     * certP12绝对路径
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/12/9 21:00
     */
    @JSONField(serialize = false)
    public String getCertP12Path() {
        return StringUtils.isEmpty(getCertP12()) ? "" : ResourceConfigure.getResourceAbsolutePath(getCertP12());
    }

    /**
     * keyPem绝对路径
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/12/9 21:00
     */
    @JSONField(serialize = false)
    public String getKeyPemPath() {
        return StringUtils.isEmpty(getKeyPem()) ? "" : ResourceConfigure.getResourceAbsolutePath(getKeyPem());
    }

    public String getApiKeyV1() {
        return apiKeyV1;
    }

    public void setApiKeyV1(String apiKeyV1) {
        this.apiKeyV1 = apiKeyV1;
    }

    public String getCertPem() {
        return certPem;
    }

    public void setCertPem(String certPem) {
        this.certPem = certPem;
    }

    public String getCertP12() {
        return certP12;
    }

    public void setCertP12(String certP12) {
        this.certP12 = certP12;
    }

    public void setMchId(String mchId) {
        this.mchId = mchId;
    }

    public String getApiKeyV3() {
        return apiKeyV3;
    }

    public void setApiKeyV3(String apiKeyV3) {
        this.apiKeyV3 = apiKeyV3;
    }

    public String getSerialNo() {
        return serialNo;
    }

    public void setSerialNo(String serialNo) {
        this.serialNo = serialNo;
    }

    public String getNotifyUrl() {
        return notifyUrl;
    }

    public void setNotifyUrl(String notifyUrl) {
        this.notifyUrl = notifyUrl;
    }

    public String getKeyPem() {
        return keyPem;
    }

    public void setKeyPem(String keyPem) {
        this.keyPem = keyPem;
    }
}
